home *** CD-ROM | disk | FTP | other *** search
/ HPAVC / HPAVC CD-ROM.iso / AGSMC10.ZIP / MONITOR.PPE (.txt) < prev    next >
PCBoard Programming Language Executable  |  1995-02-27  |  6KB  |  516 lines

  1. ;------------------------------------------------------------------------------
  2. ;                                                   .ss.
  3. ;                                                   `²²'
  4. ;             .,sS$Ss,,s$  .,sS$$$Ss.  .,sS$Ss,,s$ .ss.  .sSs.
  5. ;           .d$$²^°²$$$$'.d$P²°^^²$P'.d$$²^°²$$$$'.$$$' .$$$²Sb,.
  6. ;           $$$'   .$$$' $$$²Sçsµ²' .$$$'   .$$$'.$$$' .$$$'  `$$b.
  7. ;           $$$b,,d$$$' ,$$$b,....,s$$$$b,,d$$$'.$$$;.,$$$'    ;$$$
  8. ;           `²S$$S²²S$$S²°²S$$$$S²°°²S$$$$$$',$$S²°²S$S'.sS$$$P²'
  9. ;                                    .sS²°$$$²²°"'       d²°'
  10. ;                                  .$$²  .$$'
  11. ;                                  $$$.,d$$'
  12. ;                                  `²S$$S²'
  13. ;------------------------------------------------------------------------------
  14. ; P.P.L.X. 2.OO                          (C)1996 - Lone Runner / AEGiS CoRP'96 
  15. ;------------------------------------------------------------------------------
  16. ; PPE 3.O1 (Encryption type I) - Analysis ON - Postprocessing ON
  17. ;------------------------------------------------------------------------------
  18.  
  19.     Boolean  BOOLEAN001
  20.     Boolean  BOOLEAN002
  21.     Boolean  BOOLEAN003
  22.     DWord    DWORD001
  23.     Integer  INTEGER001
  24.     String   STRING001
  25.     String   STRING002
  26.     String   STRING003
  27.     String   STRING004
  28.     String   STRING005
  29.     String   STRING006
  30.     String   STRING007
  31.     String   STRING010
  32.     String   STRING011
  33.     Word     WORD001
  34.     Word     WORD002
  35.     Word     WORD003
  36.     Word     TWORD004(9)
  37.     Word     WORD005
  38.     Word     WORD006
  39.     Word     WORD007
  40.     Word     WORD008
  41.     Word     WORD009
  42.     Word     WORD010
  43.     Word     WORD012
  44.     Declare  Function FUNCTION001(String STRING009) String
  45.     Declare  Function FUNCTION002() String
  46.     Declare  Function FUNCTION003() Word
  47.     Declare  Procedure PROC001()
  48.     Declare  Procedure PROC002(String STRING008, Word WORD011)
  49.     Declare  Procedure PROC005()
  50.     Declare  Procedure PROC006(Word WORD014)
  51.     Declare  Procedure PROC007(Word WORD013)
  52.     Declare  Procedure PROC008()
  53.     Declare  Procedure PROC009()
  54.  
  55. ;------------------------------------------------------------------------------
  56.  
  57.     STRING007 = PPEPath() + "GROUP.LOG"
  58.     GetUser
  59.     StartDisp 1
  60.     Print "@POFF@"
  61.     STRING001 = PPEPath() + "WORK\ORG.DAT"
  62.     If (Exist(STRING001)) Goto LABEL001
  63.     PROC008()
  64.     End
  65.     :LABEL001
  66.     DispFile PPEPath() + "MONITOR", 0 + 4
  67.     DWORD001 = Crc32(1, STRING001)
  68.     WORD010 = 1
  69.     AnsiPos 28, 7 + WORD010
  70.     Print "@X09■"
  71.     INTEGER001 = Time()
  72.     AnsiPos 1, 23
  73.     WORD005 = FileInf(STRING001, 4) / 2
  74.     PROC001()
  75.     For WORD002 = 1 To WORD005
  76.         AnsiPos 25, 7 + WORD002
  77.         If (WORD002 < 10) Then
  78.             Print "@X0F", WORD002
  79.         Else
  80.             Print "@X0F" + "0"
  81.         Endif
  82.         AnsiPos 29, 7 + WORD002
  83.         If (TWORD004(WORD002 - 1) <> 0) Then
  84.             RdUNet TWORD004(WORD002 - 1)
  85.             Print FUNCTION001(UN_Name())
  86.             Continue
  87.         Endif
  88.         Print "-"
  89.     Next
  90.     WORD009 = 1
  91.     AnsiPos 25, 19
  92.     Print "@X1F" + ScrText(25, 19, 15, 0)
  93.     AnsiPos 39, 19
  94.     Print "@X0F" + ScrText(39, 19, 15, 0)
  95.     AnsiPos 1, 23
  96.     While (1) Do
  97.         PROC009()
  98.         STRING003 = Inkey()
  99.         If ((STRING003 == "LEFT") || (STRING003 == "RIGHT")) Then
  100.             If (WORD009 == 1) Then
  101.                 AnsiPos 25, 19
  102.                 Print "@X0F" + ScrText(25, 19, 14, 0)
  103.                 AnsiPos 39, 19
  104.                 Print "@X1F" + ScrText(39, 19, 14, 0)
  105.                 AnsiPos 1, 23
  106.                 WORD009 = 2
  107.                 Goto LABEL002
  108.             Endif
  109.             AnsiPos 25, 19
  110.             Print "@X1F" + ScrText(25, 19, 14, 0)
  111.             AnsiPos 39, 19
  112.             Print "@X0F" + ScrText(39, 19, 14, 0)
  113.             AnsiPos 1, 23
  114.             WORD009 = 1
  115.             :LABEL002
  116.             Continue
  117.         Endif
  118.         If (STRING003 == Chr(13)) Then
  119.             If (WORD009 == 1) Then
  120.                 PROC005()
  121.                 End
  122.                 Goto LABEL005
  123.             Endif
  124.             STRING005 = FUNCTION002()
  125.             If (BOOLEAN002) Goto LABEL003
  126.             PrintLn 
  127.             STRING005 = "/" + U_Name() + " : " + STRING005
  128.             WORD002 = FUNCTION003()
  129.             If (WORD002 <> 0) Then
  130.                 FAppend 7, STRING007, 1, 0
  131.                 FPutLn 7, PCBMac("     -*- @USER@ -------------------*>") + " (MONITOR.PPE) - PRIVATE TO #" + String(WORD002) + " :"
  132.                 FPutLn 7, STRING005
  133.                 FClose 7
  134.                 PROC002(STRING005, WORD002)
  135.                 STRING002 = ScrText(27, 7, 5, 1)
  136.                 AnsiPos 27, 7
  137.                 Print "@X8FSeNT!"
  138.                 AnsiPos 1, 23
  139.                 Delay 18
  140.                 AnsiPos 1, 22
  141.                 ClrEol
  142.                 AnsiPos 27, 7
  143.                 Print STRING002
  144.                 Goto LABEL004
  145.             Endif
  146.             :LABEL003
  147.             AnsiPos 1, 22
  148.             ClrEol
  149.             :LABEL004
  150.             AnsiPos 1, 23
  151.             :LABEL005
  152.             Continue
  153.         Endif
  154.         If (STRING003 == Chr(27)) Then
  155.             PROC005()
  156.             End
  157.         Endif
  158.     EndWhile
  159.     End
  160.  
  161. ;------------------------------------------------------------------------------
  162.  
  163.     Procedure PROC001()
  164.  
  165.     WORD008 = 0
  166.     FOpen 1, STRING001, 0, 3
  167.     FSeek 1, 0, 0
  168.     For WORD003 = 1 To WORD005
  169.         FRead 1, WORD002, 2
  170.         If (WORD002 <> 0) Then
  171.             Inc WORD008
  172.             If (WORD002 == PcbNode()) WORD001 = WORD003
  173.             TWORD004(WORD003 - 1) = WORD002
  174.             Continue
  175.         Endif
  176.         TWORD004(WORD003 - 1) = 0
  177.     Next
  178.     FClose 1
  179.  
  180.     EndProc
  181.  
  182.  
  183. ;------------------------------------------------------------------------------
  184.  
  185.     Procedure PROC002(String STRING008, Word WORD011)
  186.  
  187.     WORD007 = WORD011
  188.     If (WORD007 == 10) WORD007 = 0
  189.     FCreate 1, PPEPath() + "WORK\PVT." + String(WORD007), 1, 0
  190.     FPutLn 1, Left(STRING008, 80)
  191.     FClose 1
  192.  
  193.     EndProc
  194.  
  195.  
  196. ;------------------------------------------------------------------------------
  197.  
  198.     Function FUNCTION001(String STRING009) String
  199.  
  200.     STRING002 = Upper(STRING009)
  201.     STRING002 = Replace(STRING002, "A", "a")
  202.     STRING002 = Replace(STRING002, "E", "e")
  203.     STRING002 = Replace(STRING002, "I", "i")
  204.     STRING002 = Replace(STRING002, "O", "o")
  205.     STRING002 = Replace(STRING002, "U", "u")
  206.     FUNCTION001 = STRING002
  207.  
  208.     EndFunc
  209.  
  210.  
  211. ;------------------------------------------------------------------------------
  212.  
  213.     Procedure PROC005()
  214.  
  215.     Color 15
  216.     Cls
  217.     AnsiPos 33, 11
  218.     Color 8
  219.     Gosub LABEL006
  220.     Color 7
  221.     Gosub LABEL006
  222.     Color 15
  223.     Gosub LABEL006
  224.     Color 7
  225.     Gosub LABEL006
  226.     Color 8
  227.     Gosub LABEL006
  228.     Color 15
  229.     Print "              "
  230.     Goto LABEL007
  231.     :LABEL006
  232.     Print "<┤EGiS CoRP'94"
  233.     Delay 2
  234.     Backup 14
  235.     Return
  236.     :LABEL007
  237.  
  238.     EndProc
  239.  
  240.  
  241. ;------------------------------------------------------------------------------
  242.  
  243.     Function FUNCTION002() String
  244.  
  245.     Word     WORD012
  246.  
  247.     BOOLEAN002 = 0
  248.     AnsiPos 1, 22
  249.     Print "@X0F"
  250.     Print "@X09MeSSaGE )> "
  251.     STRING004 = ""
  252.     :LABEL008
  253.     PROC009()
  254.     STRING003 = Inkey()
  255.     If (STRING003 <> "") Then
  256.         If (Len(STRING003) < 2) Then
  257.             If (STRING003 == Chr(27)) Then
  258.                 BOOLEAN002 = 1
  259.                 STRING003 = Chr(13)
  260.                 Goto LABEL009
  261.             Endif
  262.             If (STRING003 == Chr(13)) Then
  263.                 Goto LABEL009
  264.             Endif
  265.             If ((Asc(STRING003) > 31) && (Len(STRING004) < 50)) Then
  266.                 Color 15
  267.                 Print STRING003
  268.                 STRING004 = STRING004 + STRING003
  269.             Endif
  270.             If (STRING003 == Chr(8)) Then
  271.                 If (Len(STRING004) > 0) Then
  272.                     Backup 1
  273.                     Print "@X07 "
  274.                     Backup 1
  275.                     STRING004 = Mid(STRING004, 1, Len(STRING004) - 1)
  276.                 Endif
  277.             Endif
  278.         Endif
  279.     Endif
  280.     Goto LABEL008
  281.     :LABEL009
  282.     FUNCTION002 = STRING004
  283.  
  284.     EndFunc
  285.  
  286.  
  287. ;------------------------------------------------------------------------------
  288.  
  289.     Function FUNCTION003() Word
  290.  
  291.     Word     WORD013
  292.  
  293.     WORD006 = 1
  294.     PROC006(1)
  295.     While (1) Do
  296.         PROC009()
  297.         If (BOOLEAN001) Then
  298.             PROC006(WORD006)
  299.             BOOLEAN001 = 0
  300.         Endif
  301.         STRING003 = Inkey()
  302.         If (STRING003 == "DOWN") Then
  303.             PROC007(WORD006)
  304.             Inc WORD006
  305.             If (WORD006 > WORD005) WORD006 = 1
  306.             PROC006(WORD006)
  307.             Continue
  308.         Endif
  309.         If (STRING003 == "UP") Then
  310.             PROC007(WORD006)
  311.             Dec WORD006
  312.             If (WORD006 == 0) WORD006 = WORD005
  313.             PROC006(WORD006)
  314.             Continue
  315.         Endif
  316.         If (STRING003 == Chr(13)) Then
  317.             If (TWORD004(WORD006 - 1)) Then
  318.                 PROC007(WORD006)
  319.                 FUNCTION003 = WORD006
  320.                 Break
  321.             Endif
  322.             Continue
  323.         Endif
  324.         If (STRING003 == Chr(27)) Then
  325.             PROC007(WORD006)
  326.             FUNCTION003 = 0
  327.             Break
  328.         Endif
  329.     EndWhile
  330.  
  331.     EndFunc
  332.  
  333.  
  334. ;------------------------------------------------------------------------------
  335.  
  336.     Procedure PROC007(Word WORD013)
  337.  
  338.     AnsiPos 29, 7 + WORD013
  339.     Print "@X0F" + ScrText(29, 7 + WORD013, 25, 0)
  340.     AnsiPos 1, 23
  341.  
  342.     EndProc
  343.  
  344.  
  345. ;------------------------------------------------------------------------------
  346.  
  347.     Procedure PROC006(Word WORD014)
  348.  
  349.     AnsiPos 29, 7 + WORD014
  350.     Print "@X1F" + ScrText(29, 7 + WORD014, 25, 0)
  351.     AnsiPos 1, 23
  352.  
  353.     EndProc
  354.  
  355.  
  356. ;------------------------------------------------------------------------------
  357.  
  358.     Procedure PROC008()
  359.  
  360.     Cls
  361.     DispFile PPEPath() + "NOBODY", 0 + 4
  362.  
  363.     EndProc
  364.  
  365.  
  366. ;------------------------------------------------------------------------------
  367.  
  368.     Procedure PROC009()
  369.  
  370.     If (Exist(STRING001)) Goto LABEL010
  371.     PROC008()
  372.     End
  373.     :LABEL010
  374.     If (Exist(PPEPath() + "WORK\LOCKED.SEM")) Then
  375.         If (BOOLEAN003) Goto LABEL011
  376.         BOOLEAN003 = 1
  377.         STRING006 = ScrText(35, 7, 6, 1)
  378.         AnsiPos 36, 7
  379.         Print "@X0FLoCKeD"
  380.         AnsiPos 1, 23
  381.         :LABEL011
  382.     ElseIf (BOOLEAN003) Then
  383.         BOOLEAN003 = 0
  384.         AnsiPos 36, 7
  385.         Print STRING006
  386.         AnsiPos 1, 23
  387.     Endif
  388.     If (Exist(STRING001)) Then
  389.         If (Crc32(1, STRING001) <> DWORD001) Then
  390.             DWORD001 = Crc32(1, STRING001)
  391.             WORD005 = FileInf(STRING001, 4) / 2
  392.             PROC001()
  393.             BOOLEAN001 = 1
  394.             For WORD002 = 1 To WORD005
  395.                 AnsiPos 25, 7 + WORD002
  396.                 If (WORD002 < 10) Then
  397.                     Print "@X0F", WORD002
  398.                     Goto LABEL012
  399.                 Endif
  400.                 Print "@X0F" + "0"
  401.                 :LABEL012
  402.                 AnsiPos 29, 7 + WORD002
  403.                 If (TWORD004(WORD002 - 1) <> 0) Then
  404.                     RdUNet TWORD004(WORD002 - 1)
  405.                     Print FUNCTION001(UN_Name())
  406.                     Continue
  407.                 Endif
  408.                 Print "-                        "
  409.             Next
  410.             AnsiPos 1, 23
  411.             Goto LABEL013
  412.         Endif
  413.         If (INTEGER001 + 1 < Time()) Then
  414.             AnsiPos 28, 7 + WORD010
  415.             Print "@X0F "
  416.             Inc WORD010
  417.             If (WORD010 > WORD005) WORD010 = 1
  418.             AnsiPos 28, 7 + WORD010
  419.             Print "@X09■"
  420.             INTEGER001 = Time()
  421.             AnsiPos 1, 23
  422.         Endif
  423.     Endif
  424.     :LABEL013
  425.  
  426.     EndProc
  427.  
  428.  
  429. ;------------------------------------------------------------------------------
  430. ;
  431. ; Usage report (before postprocessing)
  432. ;
  433. ; ■ Statements used :
  434. ;
  435. ;    5       End
  436. ;    2       Cls
  437. ;    2       ClrEol
  438. ;    8       Color 
  439. ;    64      Goto 
  440. ;    56      Let 
  441. ;    30      Print 
  442. ;    1       PrintLn 
  443. ;    43      If 
  444. ;    2       DispFile 
  445. ;    1       FCreate 
  446. ;    1       FOpen 
  447. ;    1       FAppend 
  448. ;    3       FClose 
  449. ;    3       FPutLn 
  450. ;    1       StartDisp 
  451. ;    1       GetUser
  452. ;    5       Gosub 
  453. ;    1       Return
  454. ;    2       Delay 
  455. ;    3       Inc 
  456. ;    1       Dec 
  457. ;    2       RdUNet 
  458. ;    35      AnsiPos 
  459. ;    3       Backup 
  460. ;    1       FSeek 
  461. ;    1       FRead 
  462. ;    7       EndProc
  463. ;    3       EndFunc
  464. ;
  465. ;
  466. ; ■ Functions used :
  467. ;
  468. ;    2       /
  469. ;    41      +
  470. ;    8       -
  471. ;    16      ==
  472. ;    6       <>
  473. ;    8       <
  474. ;    3       <=
  475. ;    4       >
  476. ;    6       >=
  477. ;    37      !
  478. ;    7       &&
  479. ;    4       ||
  480. ;    4       Len(
  481. ;    1       Upper()
  482. ;    1       Mid()
  483. ;    1       Left()
  484. ;    8       Chr()
  485. ;    1       Asc()
  486. ;    3       Time()
  487. ;    1       U_Name()
  488. ;    5       Replace()
  489. ;    3       Inkey()
  490. ;    2       String()
  491. ;    6       PPEPath()
  492. ;    1       PcbNode()
  493. ;    2       UN_Name()
  494. ;    4       Exist()
  495. ;    2       FileInf()
  496. ;    10      ScrText()
  497. ;    3       Crc32()
  498. ;    1       PCBMac()
  499. ;
  500. ;------------------------------------------------------------------------------
  501. ;
  502. ; Analysis flags : No flag
  503. ;
  504. ;------------------------------------------------------------------------------
  505. ;
  506. ; Postprocessing report
  507. ;
  508. ;    3       For/Next
  509. ;    2       While/EndWhile
  510. ;    29      If/Then or If/Then/Else
  511. ;    0       Select Case
  512. ;
  513. ;------------------------------------------------------------------------------
  514. ;                 AEGiS Corp - Break the routines, code against the machines!
  515. ;------------------------------------------------------------------------------
  516.